Skip to content

Fix(accents,#16638): Sudoku-10, -11, -12-Z3 (deux jumeaux) -- détachés de #20780 et #20783 (seuil de 15 fichiers) - #20940

Merged
myia-ai-01 merged 4 commits into
mainfrom
claude/16638-p5-accents-sudoku-c
Oct 18, 2026
Merged

myia-ai-01 merged 4 commits into
mainfrom
claude/16638-p5-accents-sudoku-c

Conversation

@jsboige

@jsboige jsboige commented Oct 15, 2026 •

Copy link
Copy Markdown
Owner

See #16638
Hors flotte (exemption #17713).

Summary

Changes

Repris de #20780 :

  • Sudoku-10-ORTools-Python.ipynb : 10 corrections dans 3 cellules (15, 27, 29). Mots : deterministe, execution, cles, precedent, meme, aleatoire.
  • Sudoku-11-Choco-Python.ipynb : 20 corrections dans 11 cellules (3, 6, 9, 12, 15, 18, 23, 26, 32, 34, 38). Mots : cles / Cles (titres et puces « Points clés »), precedente (dix occurrences dans le tableau comparatif de la cellule 32).
  • Sudoku-12-Z3-CSharp.ipynb : 1 correction dans 1 cellule (25). Mot : cles. La correction theories -> théories (cellule 26, « sat-modulo-theories ») est revertée : c'est une locution anglaise (section « Faux positifs revertés » de Fix(accents,#16638): tranche Sudoku (1re moitie) -- restauration canonique des accents (markdown seul) #20780).

Repris de #20783 :

  • Sudoku-12-Z3-Python.ipynb : 10 corrections, cellules 2, 13, 18, 29, 32. Paires : Regle->Règle (2), cles->clés (2), meme->même (2), memes->mêmes, modeles->modèles, probleme->problème, theories->théories (cellule 2).

Registre de parité : YAML parents et entrées d'audit de sudoku-10-ortools et sudoku-11-choco, repris de #20780. Pour sudoku-12-z3, une ligne known_differences « sur les deux jumeaux », puis check_twin_parity.py --update --pair "Sudoku-12 Z3" en dernière opération (#8957). 10 fichiers au total.

Validation

Lancée sur le commit 4d35ad9cee (tête de cette PR), base origin/main 2ee98646c1.

check_accent_restoration_invariants.py --base-sha 2ee98646c1 --fail-on-findings <carnet>
  -> Sudoku-10-ORTools-Python.ipynb : TOTAL 0 finding(s)
  -> Sudoku-11-Choco-Python.ipynb : TOTAL 0 finding(s)
  -> Sudoku-12-Z3-CSharp.ipynb : TOTAL 0 finding(s)
  -> Sudoku-12-Z3-Python.ipynb : TOTAL 0 finding(s)
check_twin_parity.py --check --per-pair --base 2ee98646c1
  -> Total : 157 paire(s) | OK=157 INTRO=0 FIXED=0 PRE=0
pytest scripts/notebook_tools/tests/test_twin_registry_integrity.py
  -> 46 passed, 1 warning

Aucun de ces carnets n'a changé sur main depuis la base de fusion de #20780 et #20783 (1cef8a5502). Sur la voie rapide des PRs d'origine, le seul garde bloquant rouge est check-nav-chain. Il signale deux orphan_entry déjà présents sur main (carnets ANALYSE étrangers à cette PR), et le correctif est #20704.

Review Checklist

  1. Scope réel : OK. 10 fichiers : 4 carnets et le registre de leurs 3 paires jumelles.
  2. Validation post-fix : OK. Invariants d'accent, parité et tests du registre relancés sur la tête.
  3. Cohérence pédagogique : OK. Seuls des accents changent dans la prose markdown (invariance strip_accents, 0 finding).
  4. Exécution réelle : sans objet (C.2).
  5. Regression check : OK. check_twin_parity à 157/157, et l'attestation de sudoku-12-z3 porte les blobs des deux côtés.

Hors flotte : session cloud du mainteneur (exemption #17713), pas de lane ni de tag Grain.

🤖 Generated with Claude Code

https://claude.ai/code/session_01LRbWZZHE9jZscr8ya3niWA


Generated by Claude Code


Generated by Claude Code

… -- detache de #20780 (seuil de 15 fichiers)

Partie de la PR #20780 detachee pour la ramener sous le seuil de 15 fichiers
(pr-review-discipline §A). Fichiers repris a l'identique de sa tete 90ea1e0 ;
aucun n'a change sur main depuis sa base de fusion 1cef8a5, donc les
attestations jumelles restent valides.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LRbWZZHE9jZscr8ya3niWA
…tation a refaire sur les deux jumeaux

La paire sudoku-12-z3 etait ré-attestée deux fois, un côté chacune : côté C#
dans #20780, côté Python dans #20783, avec deux entrées 0017 concurrentes.
Les deux côtés sont réunis ici. Ce commit reprend le carnet Python de la tête
7e0315a de #20783 et retire l'attestation côté C# seul ; le commit suivant
ré-atteste la paire sur les deux jumeaux.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LRbWZZHE9jZscr8ya3niWA
…n des deux cotes de Sudoku-12-Z3

La modification de cette PR deplace le blob SHA de carnets enregistres dans
le registre de parite. Pour chaque paire : entree known_differences qui decrit
le geste et le cote touche, puis check_twin_parity.py --update --pair en
derniere operation (cf #8957). Paires : sudoku-12-z3

check_twin_parity.py --check --per-pair --base origin/main : OK sur les
157 paires apres re-attestation.

See #16638

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LRbWZZHE9jZscr8ya3niWA

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Hermes] — Réunion Sudoku 10/11/12 détachée de #20780+#20783 : attestation réunie vérifiée, LGTM

Le neuf de cette PR est le registre — le contenu carnets a déjà été reviewé par mes soins aux têtes sources (j'ai approuvé #20780 le 14/10 23:40Z @90ea1e0c, commenté #20783 le 15/10 09:43Z @7e0315ae). Vérifié au head 4d35ad9c : les 4 blobs carnets sont byte-identiques à ces têtes sources (Sudoku-10 f24d8ae4, Sudoku-11 f81df117, Sudoku-12-C# 31455de7, Sudoku-12-Py 7e23b0c6) — rien de neuf à relire côté prose.

Attestation réunie sudoku-12-z3 0017-2026-10-15 : porte exactement les deux blobs du head (python 7e23b0c6… ✓, csharp 31455de7… ✓) — le conflit des entrées 0017 concurrentes de #20780/#20783 est bien résorbé (une seule entrée, les deux côtés). La ligne known_differences documente correctement l'attestation bilatérale avec --update en dernière opération (#8957).

Entrées reprises : sudoku-10-ortools 0013 (python f24d8ae4 = blob head ✓) et sudoku-11-choco 0013 (python f81df117 = blob head ✓), côtés C# non touchés (blobs main inchangés).

Règle C.2 (markdown seul), scan sécurité négatif. Convergence : la 2e moitié de #20783 restera dans la PR d'origine — son body documente déjà le recouvrement.

@github-actions

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Prose/output review needed in the notebooks this PR changed: a numeric value is not anchored, an explicit relation is contradicted, or its evidence is missing. These cases remain distinct in the JSON report; the signal is advisory, NOT a merge gate.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Stale-claim review needed: a markdown cell claims a measurement value that appears in NO committed output of the notebook. Advisory, NOT a merge gate — triage against the JSON artifact.

Scope = notebooks CHANGED in this PR, not the whole corpus. The stale-claim-report run artifact holds the structured JSON.
Rationale: the sibling detector above only compares a claim to the outputs of the cells that PRECEDE it; a claim written in a cell that precedes its code (App-5-Timetabling c.2/c.4) is invisible to it, and a value imported from a twin notebook is never produced locally. See python scripts/check_stale_claims.py --help.

@github-actions

Copy link
Copy Markdown
Contributor

✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams).

Scope = notebooks CHANGED in this PR, not the whole corpus. The factual-mislabel-report run artifact holds the structured JSON.
Rationale: pure ABSENCE of a claimed value is the sibling stale-claim detector's job; this one only reports CONTRADICTIONS between an adjacent code cell's stream and the markdown that describes it. See python scripts/check_factual_mislabel.py --help.

jsboige commented Oct 15, 2026

Copy link
Copy Markdown
Owner Author

Sur l'avis « Prose/output review » : les signalements sont antérieurs à cette PR. J'ai lancé check_markdown_claims_output.py --json et check_stale_claims.py --json sur les carnets modifiés, à la base 2ee98646c1 puis à la tête 4d35ad9cee. Une fois les accents normalisés, les deux côtés rendent les mêmes signalements, sans aucun nouveau :

  • premier détecteur : 8 et 8 (Sudoku-11 : 5, Sudoku-12-Py : 3) ;
  • second détecteur : 7 et 7.

Cette PR ne restaure que des accents en markdown ; ces écarts sortent de son périmètre et restent tels quels ici.


Generated by Claude Code

@github-actions github-actions Bot added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Oct 15, 2026
@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 5.3s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.5s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 5.2s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.8s
Search-01-StateSpace.ipynb ✅ SUCCESS 4.0s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.2s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 18.7s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.7s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 12.5s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@github-actions

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions github-actions Bot added the variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol) label Oct 15, 2026

jsboige commented Oct 15, 2026

Copy link
Copy Markdown
Owner Author

Le rouge de « Always-on guards » sur cette PR vient de main : aucun des fichiers en cause n'est touché par la PR.

check-nav-chain signale deux orphan_entry, ANALYSE-10-Reflexion-Thurston-Python.ipynb et ANALYSE-06-Sensibilite-2026-Lean-Python_en.ipynb. J'ai reproduit le même résultat sur origin/main avec python scripts/notebook_tools/check_notebook_nav_chain.py --check. Le correctif est la PR #20704 : elle est approuvée par le coordinateur et aucun de ses checks n'est en échec, mais PR gate et deux autres runs y ont été annulés en file et attendent d'être relancés.

Je ne reporte pas ce correctif ici : il touche deux carnets étrangers à cette PR, dont un _en. Une fois #20704 mergée, je rafraîchirai la branche et la garde repassera au vert.


Generated by Claude Code

jsboige commented Oct 15, 2026

Copy link
Copy Markdown
Owner Author

Le check Scripts Tests (CPU) est rouge sur la tête 4d35ad9cee, mais l'échec ne vient pas de cette PR.

  • Seul test en échec : scripts/translation/tests/test_check_translation_parity.py::test_full_repo_state_passes_parity (1 failed, 18985 passed). Il signale un STRUCTURE_DRIFT sur la paire 01-2-GPT-5-Image-Generation / _en, que cette PR ne touche pas (elle modifie MyIA.AI.Notebooks/Sudoku/Sudoku-10-ORTools-Python.ipynb, MyIA.AI.Notebooks/Sudoku/Sudoku-11-Choco-Python.ipynb, MyIA.AI.Notebooks/Sudoku/Sudoku-12-Z3-CSharp.ipynb, MyIA.AI.Notebooks/Sudoku/Sudoku-12-Z3-Python.ipynb, scripts/notebook_tools/twin_pairs.d).
  • Cause : sur main, Tp2 #20551 a ajouté des cellules au carnet FR sans re-rendre son jumeau EN. Le test tourne sur le commit de fusion avec main, où il est rouge.
  • Correctifs existants : fix(i18n,#20551): parite EN 01-2-GPT-5-Image -- rendu T4 des cellules TP2 (main rouge Scripts Tests) #20589 et fix(translation,#20551): re-rendu EN de 01-2 GPT-5 Image -- repare la parite FR/EN rouge sur main #20777, qui re-rendent tous deux le jumeau EN. Je ne les reporte pas ici : ils modifient un carnet et un fichier de traduction, hors du périmètre de cette PR.
  • Suite : dès que l'un des deux sera mergé, je rafraîchirai la branche sur main, ce qui relancera la jambe. Relancer le job seul rejouerait le même commit de fusion, donc le même rouge.

Generated by Claude Code

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 4
  • Code cells validated: 56
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

jsboige commented Oct 15, 2026

Copy link
Copy Markdown
Owner Author

cell-source-parses est rouge sur la tête 64d5fa9364 sans avoir rien parsé : le job s'est arrêté au checkout, sur le runner myia-ai-01-wsl-9 (« error: Could not read » sur une série d'objets, dont 6ad03c7431, le commit de main sur lequel la branche a été rafraîchie). Aucun fichier n'a été examiné. Plusieurs runners WSL de myia-ai-01 cassent ainsi leurs checkouts depuis ce matin (wsl-2 sur #20732, #20737, #20595 et #20811 ; wsl-9 ici) : c'est un défaut de l'état git des runners, pas un défaut de cette PR. Le job en échec a été relancé une fois.


Generated by Claude Code

@jsboige

jsboige commented Oct 17, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2023:CoursIA
pr: 20940
head: 64d5fa9
complete: true
body: read
comments-reviewed: 11
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: e3245dbbeaf5258fea50607e8a774e282aabbaa321412769d93645b381383124
diff-files: 10
diff-additions: 52
diff-deletions: 31
checks: blocked
b0: clear
scope: pass
domain: not-applicable
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20940
organ-rc: 3
[/ADJOINT PREFLIGHT]

Notes de lecture (surfaces) : accents #16638 — Sudoku-10/11/12-Z3 reunis depuis #20780+#20783 (10 fichiers +52/-31, attestation reunie verifiee par Hermes). Review Hermes COMMENTED @15/10 11:44:17Z, 0 marqueur 🟡/🔴 — b0 clear. 0 thread. Rouge residuel unique : Organ-duplication advisory @15/10 20:44:15Z, log du job = clean: true — meme classe annotation/transport que #20936 (resultat propre, rouge au POST), dans la vague d'incidents runners WSL documentee par la lane c@20:44:24Z (wsl-2/wsl-9, checkouts casses sur #20732/#20737/#20595/#20811). Geste lane (deja annonce) : rafraichir sur main apres merge des deux meres. Champ bloquant : checks.

@jsboige

jsboige commented Oct 18, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 20940
head: 64d5fa9
complete: true
body: read
comments-reviewed: 12
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 065683700aaceebdd24c85a60cc04f384c78b2dbaced3d6bb48ea49a87202abe
diff-files: 10
diff-additions: 52
diff-deletions: 31
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20940
organ-rc: 0
supersedes: 12
supersedes-why: Les checks precedemment bloquants sont desormais latest-wins-green selon le verdict derive. Lecture complete des surfaces et du diff deja effectuee ; controle independant sur les quatre carnets : invariants accents et content-loss sans finding, sources de code, sorties, execution_count et metadata identiques en JSON canonique, trois attestations de paires concordantes avec les blobs de la tete. Recoupement parent du diff CSharp Z3 via GitHub : seul cles vers cles accentue change, blob 31455de70eaea7108d9794e321805c092059f6e5. Tete exacte OPEN et MERGEABLE. Les deux autres mismatches du registre sont preexistants au merge-base ; aucune reexecution revendiquee pour ce changement markdown seul. STACK WARN : couverture automatique exhaustive des piles non etablie.
[/ADJOINT PREFLIGHT]

@myia-ai-01 myia-ai-01 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review ai-01 (c2186). Le diff ne touche que des cellules markdown : il restaure des accents (« clés », « Création »…) dans les carnets annoncés, et les entrées YAML d'attestation qui vont avec sont cohérentes. Aucune cellule de code n'est modifiée, aucune sortie ni execution_count n'est touchée. Les faux positifs signalés dans le body sont bien laissés intacts. La review Hermes ne pose aucun marqueur de réserve, et le dossier est READY. Approuvé.

@myia-ai-01
myia-ai-01 merged commit 1aff90f into main Oct 18, 2026
93 of 116 checks passed
jsboige added a commit that referenced this pull request Oct 18, 2026
#20783)

Le merge de main (7060dd6) a fait bouger le jumeau Python
(restauration canonique des accents, #20783/#20940) alors que
l'attestation 0017 datait d'avant le merge -> le gate Twin parity
denoncait 1 paire DRIFT introduite a la tete fusionnee. Re-attestation
0018 a l'etat actuel des deux cotes (recale prose C# markdown-only +
accents Python main), --update passe en dernier, aucune strip outillee
impliquee. Verif locale : [OK] Sudoku-14 BDD (semantic).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants